import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: LIUYANJIAO
 * Date: 2024-11-22
 * Time: 16:46
 */
public class slousion4 {
    //创建我的哈希表
    static class Myhash{
        //创建一个节点，存放数值和下一节点的地址
        class Node{
            int value;
            Node next;

            public Node(int value) {
                this.value = value;
            }
        }
        //创建一个数组存储节点的地址
        //以[47,7,29,11,16,92,22,8,3],除11留余数法
        Node[] arr=new Node[11];
        //创建哈希表
        public void createhash2(int[] pre){
            //先将原数组中的值存放在节点中
            for (int i = 0; i < pre.length; i++) {
                int pos=pre[i]%11;
                if(arr[pos]!=null){
                    //发生冲突，使用拉链法
                    arr[pos].next=new Node(pre[i]);
                }
                arr[pos]=new Node(pre[i]);
            }

        }
        //哈希表的查找
        //在哈希表中查找
        public boolean findhash2(int key){
            int pos=key%11;
            while(arr[pos].value!=key){
                if(arr[pos].next==null){
                    return false;
                }
               else {
                    arr[pos]=arr[pos].next;
                }

            }
            return true;
        }

        public static void main(String[] args) {
            slousion4.Myhash myhash=new slousion4.Myhash();
            int[] pre=new int[]{47, 7, 29, 11, 16, 92, 22, 8, 3};
            System.out.println("数组："+ Arrays.toString(pre));
            myhash.createhash2(pre);
            System.out.println("是否存在22："+myhash.findhash2(22));
        }
    }
}
